package com.fadada.api;

import com.fasc.open.api.bean.base.BaseRes;
import com.fasc.open.api.bean.common.OpenId;
import com.fasc.open.api.bean.req.billing.GetBillUrlReq;
import com.fasc.open.api.bean.req.corp.AddCorpReq;
import com.fasc.open.api.bean.res.common.EUrlRes;
import com.fasc.open.api.bean.res.corp.AddOpenCorpRes;
import com.fasc.open.api.client.BillingClient;
import com.fasc.open.api.client.CorpClient;
import com.fasc.open.api.enums.billing.UrlTypeEnum;
import com.fasc.open.api.enums.common.IdTypeEnum;
import com.fasc.open.api.exception.ApiException;
import com.fasc.open.api.utils.ResultUtil;

/**
 * @author FDD
 * @version 0.0.1
 * @ClassName Billing.java
 * @Description 计费管理接口demo
 * @Param
 * @createTime 2021/12/20 14:03
 */
public class BillingDemo extends BaseDemo{

    private static BillingClient billingClient;

    public static void main(String[] args) {
        try{
            BaseDemo baseDemo = new BaseDemo();
            openApiClient = baseDemo.getClient();
            billingClient = new BillingClient(openApiClient);
            //获取应用accessToken
            accessToken = baseDemo.getAccessToken(openApiClient);
            //添加企业
            getBillUrl();

        }catch (ApiException e){
            e.printStackTrace();
        }
    }

    public static void getBillUrl() throws ApiException{
        GetBillUrlReq getBillUrlReq = new GetBillUrlReq();
        getBillUrlReq.setAccessToken(accessToken);
        //统一标识应用系统上的用户(个人或企业)。
        getBillUrlReq.setOpenId(OpenId.getInstance(IdTypeEnum.CORP.getCode(), openUserId,openCorpId));
        //计费页面类型：<br />account: 账户信息<br />order: 套餐订购<br />默认为account。
        getBillUrlReq.setUrlType(UrlTypeEnum.ACCOUNT.getCode());
        //返回地址。即用户在返回的页面上进行操作时能随时返回到该地址。该地址是应用系统的地址，以实现用户交互在应用系统和法大大平台之间的连贯性。长度最大500个字符。<br /><**注意：**用户在返回的页面上完成操作后不会自动跳转该地址。
        getBillUrlReq.setRedirectUrl("");
        BaseRes<EUrlRes> res = billingClient.getBillUrl(getBillUrlReq);
        ResultUtil.printLog(res, openApiClient.getJsonStrategy());
    }


}
